$(function () {
    //一、表单验证
    // 1- 数据不能为空
    // 2- 用户名长度2-6位
    // 3- 密码长度6-12位 
    $('#form').bootstrapValidator({
        
        // 默认的提示消息
        // message: 'This value is not valid',
        
        //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
        excluded:[':disabled',':hidden',':not(:visible)'],
        //2. 指定校验时的图标显示，默认是bootstrap风格
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        //3-对表单验证配置
        //设置被验证字段, 表单验证插件是通过表单 name 属性进行验证的
        fields:{
            username:{
                //验证规则
                validators:{
                    // 非空验证
                    notEmpty:{
                        // 提示
                        message:'用户名不能为空'
                    },
                    // 长度验证
                    stringLength:{
                        min:2,
                        max:6,
                        message:'用户名长度是2-6位'
                    },
                    // 正则表达式
                    regexp:{
                        // regexp:/^[a-zA-Z0-9_]+$/,
                        // message:'用户名只能包含大写、小写、数字和下划线'
                        regexp:/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/,
                        message:'用户名只能包含大写、小写、数字和下划线汉字'
                    },
                    // 专门用于配置回调提示信息的校验规则
                    callback:{
                        message:'用户名不存在'
                    }
                    
                }
            },
            password:{
                validators:{
                    notEmpty:{
                        message:'密码不能为空'
                    },
                    stringLength:{
                        min:6,
                        max:12,
                        message:'密码长度是6-12位'
                    },
                    different:{
                        field:'username',
                        message:'密码不能和用户名相同'
                    },
                    regexp:{
                        regexp:/^[a-zA-Z0-9\.]+$/,
                        message:'密码由大小写字母、数字和 . 组成'
                    },
                    // 专门用于配置回调提示信息的校验规则
                    callback:{
                        message:'密码错误'
                    }
                }
            }

        }
    })

    //二、 重置表单和验证样式、用插件的方法
    $('.btn-reset').click(function(){
            // $('#form')[0].reset(); 只重置表单的值
        // 获取表单验证实例（插件的），重置
        $('#form').data('bootstrapValidator').resetForm();
    })

    // 三、验证通过、获取表单数据
    // 不用点击事件、   bootstrapValidator插件封装好了事件

    $('#form').on('success.form.bv',function(e){
        // 阻止默认的表单提交（会刷新）
        e.preventDefault();
        // 表单序列化
        var f = $('#form').serialize();
        // 通过 ajax 进行登录请求
        $.ajax({
            url:'/employee/employeeLogin',
            type:'post',
            datatype:'json',
            data:f,
            success:function(info){
                // console.log(info);
                if(info.success){
                    // 跳到首页
                    location.href = 'index.html';
                }
                if(info.error == 1000){
                    // 用户名不对时（登录失败）、获取表单实例，更新表单状态（成功valid或失败invalid）,提示错误信息
                    // 把用户名验证状态改成 验证失败invalid，提示错误信息
                    $('#form').data('bootstrapValidator').updateStatus('username','INVALID','callback');
                }
                if(info.error == 1001){
                    $('#form').data('bootstrapValidator').updateStatus('password','INVALID','callback');
                }

                
            }
        })
    })



})




